Data that is recorded in a memory device such as flash memory can be read by any one of hard-decision reading (also referred to as hard-bit reading) and soft-decision reading (also referred to as soft-bit reading). In the hard-decision reading, the data that is recorded is read as a bit having a value of “0” or “1”. On the other hand, in the soft-decision reading, the data that is recorded is read as information relating to the probability that the data will have a value of “0” or “1”.
In an algebraic code in the related art, in a case where the soft-decision reading is performed, decoding that exceeds the number of possible corrections of a code can be performed, but in a case where the hard-decision reading is performed, generally, the decoding that exceeds the number of possible corrections of the code cannot be performed.